Version control with accept only designations

ABSTRACT

Version control for a document can include receiving from a user a request to commit one or more revisions to a master document in a document repository. The one or more revisions can be included in a local copy of the master document. A processor can determine whether an accept only designation is assigned to at least a portion of the local copy. In response to a determination that an accept only designation is assigned to at least a portion of the local copy, the respective revisions assigned an accept only designation can be disallowed from incorporation into the master document. Revisions made to the master document can be sent to the user for incorporation into the user&#39;s local copy of the master document. Such sending is not prevented by the assignment of an accept only designation to at least a portion of the local copy of the master document.

BACKGROUND

Arrangements described herein relate to version control systems andmethods.

Generally, version control relates to the management of multipleversions of a document, such as a computer file having a computerprogram source code. In the field of software development, authorizeddevelopers can access a file from a repository hosted or managed by aserver computer and make revisions to the file. Version control systemsare used to manage the developer's access to the files. Version controlsystems can allow developers to back up their changes and sync suchchanges across multiple developers on a project.

In some instances, a developer may not wish to have its changes to acertain file delivered to the repository, but the developer may stillneed to accept changes to the file made by other developers. There arevarious ways in which a developer can do so. For example, currentversion control systems allow software developers to designate a file as“ignore.” In such case, the file is treated as being outside of theversion control system. Changes to the file made by the developer arenot delivered to the repository, and changes to the file made by otherdevelopers cannot be accepted. As another example, a file can bedesignated as “read only”, that is, the file can only be modified bycertain individuals with write permission. In still a further example, adeveloper may not apply any designation to a file, but it must becareful to ensure that changes to a file are not inadvertently deliveredto the repository.

SUMMARY

One or more embodiments disclosed within this specification relate toversion control and, more particularly, to version control in which anaccept only designation can assigned to at least a portion of adocument.

An embodiment can include a method of providing version control for adocument. The method can include receiving from a user a request tocommit one or more revisions to a master document in a documentrepository. The one or more revisions can be included in a local copy ofthe master document. The method can include determining, via aprocessor, whether an accept only designation is assigned to at least aportion of the local copy of the master document. The method can furtherinclude, responsive to determining that an accept only designation isassigned to at least a portion of the local copy of the master document,disallowing the respective revisions included in the at least a portionof the local copy of the master document assigned an accept onlydesignation from being incorporated into the master document. The methodcan also include sending revisions made to the master document to theuser for incorporation into the user's local copy of the masterdocument. The sending revisions is not prohibited by the user'sassignment of an accept only designation to at least a portion of thelocal copy of the master document. The sent revisions do not includerevisions disallowed in response to determining that an accept onlydesignation is assigned to at least a portion of the local copy of themaster document.

Another embodiment can include a version control method for a document.The method can include presenting a user interface to allow a user toselectively assign an accept only designation to at least a portion ofthe local copy of the master document on a client. The method canfurther include receiving an input from a user assigning an accept onlydesignation to at least a portion of the local copy of the masterdocument. The method can include receiving an input from the user makingone or more revisions to the local copy of the master document. Themethod can also include, responsive to an input from the user, sending arequest to commit the one or more revisions to the master document to aversion control module. Any of the one or more revisions included in theat least a portion of the local copy of the master document assigned anaccept only designation are disallowed from being incorporated into themaster document. The method can also include receiving revisions made tothe master document for inclusion in the local copy of the masterdocument. The receiving revisions is not prohibited if the user hasassigned an accept only designation to at least a portion of the localcopy of the master document.

Another embodiment can include a version control system. The system canhave a processor. The processor can be configured to initiate executableoperations. The executable operations can include receiving from a usera request to commit one or more revisions to a master document in adocument repository. The one or more revisions can be included in alocal copy of the master document. Further, the executable operationscan include determining whether an accept only designation is assignedto at least a portion of the local copy of the master document. Theexecutable operations can also include, responsive to determining thatan accept only designation is assigned to at least a portion of thelocal copy of the master document, disallowing the respective revisionsincluded in the at least a portion of the local copy of the masterdocument assigned an accept only designation from being incorporatedinto the master document. The executable operations can include sendingrevisions made to the master document to the user for incorporation intothe user's local copy of the master document. The sending revisions isnot prohibited if the user has assigned an accept only designation to atleast a portion of the local copy of the master document. The revisionsdo not include any revisions that were disallowed in response todetermining that an accept only designation was assigned to at least aportion of the local copy of the master document.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a block diagram illustrating a version control systemconfigured to allow documents to be designated as accept only inaccordance with one embodiment disclosed within this specification.

FIG. 2 is a flow chart illustrating a version control method in which adocument can be designated as accept only in accordance with oneembodiment disclosed within this specification.

FIG. 3 is a flow chart illustrating a version control method in which adocument can be designated as accept only in accordance with oneembodiment disclosed within this specification.

FIG. 4 is a block diagram illustrating a system configured to allowdocuments to be designated as accept only in accordance with oneembodiment disclosed within this specification.

DETAILED DESCRIPTION

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer-readablemedium(s) having computer-readable program code embodied, e.g., stored,thereon.

Any combination of one or more computer-readable medium(s) may beutilized. The computer-readable medium may be a computer-readable signalmedium or a computer-readable storage medium. A computer-readablestorage medium may be, for example, but is not limited to, anelectronic, magnetic, optical, electromagnetic, infrared, orsemiconductor system, apparatus, or device, or any suitable combinationof the foregoing. More specific examples (a non-exhaustive list) of thecomputer-readable storage medium would include the following: anelectrical connection having one or more wires, a portable computerdiskette, a hard disk drive (HDD), a solid state drive (SSD), a randomaccess memory (RAM), a read-only memory (ROM), an erasable programmableread-only memory (EPROM or Flash memory), an optical fiber, a portablecompact disc read-only memory (CD-ROM), a digital versatile disc (DVD),an optical storage device, a magnetic storage device, or any suitablecombination of the foregoing. As defined herein, the term“computer-readable storage medium” means a tangible storage medium thatcontains or stores program code for use by or in connection with aninstruction execution system, apparatus, or device.

A computer-readable signal medium may include a propagated data signalwith computer-readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer-readable signal medium may be any computer-readable medium thatis not a computer-readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer-readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber, cable, RF, etc., or any suitable combination ofthe foregoing. Computer program code for carrying out operations foraspects of the present invention may be written in any combination ofone or more programming languages, including an object orientedprogramming language such as Java™, Smalltalk, C++ or the like andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The program codemay execute entirely on the user's computer, partly on the user'scomputer, as a stand-alone software package, partly on the user'scomputer and partly on a remote computer, or entirely on the remotecomputer or server. In the latter scenario, the remote computer may beconnected to the user's computer through any type of network, includinga local area network (LAN) or a wide area network (WAN), or theconnection may be made to an external computer (for example, through theInternet using an Internet Service Provider).

Aspects of the present invention are described below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer, other programmable data processing apparatus,or other devices create means for implementing the functions/actsspecified in the flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in acomputer-readable medium that can direct a computer, other programmabledata processing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer-readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

For purposes of simplicity and clarity of illustration, elements shownin the figures have not necessarily been drawn to scale. For example,the dimensions of some of the elements may be exaggerated relative toother elements for clarity. Further, where considered appropriate,reference numbers are repeated among the figures to indicatecorresponding, analogous, or like features.

FIG. 1 is a block diagram illustrating a version control system 100configured to allow documents to be designated as accept only inaccordance with one embodiment of the present invention. The versioncontrol system 100 can include one or more servers 105, one or moreclients 110, and a document repository 115. The version control system100 can further include a version control module 120. The variouscomponents of system 100 can be communicatively linked through one ormore communication networks 125. As used herein, the term“communicatively linked” can include direct or indirect connectionsthrough a communication channel or pathway or another component orsystem. A “communication network” means one or more components designedto transmit and/or receive information from one source to another,including in a centrally-coordinated manner or in a peer-to-peerfashion.

The one or more communication networks 125 can be implemented as, orinclude, without limitation, a wide area network (WAN), a local areanetwork (LAN), the Public Switched Telephone Network (PSTN), a wirelessnetwork, a mobile network, a Virtual Private Network (VPN), theInternet, and/or one or more intranets. The communication network 125further can be implemented as or include one or more wireless networks,whether short or long range. For example, in terms of short rangewireless networks, the communication network 125 can include a localwireless network built using a Bluetooth or one of the IEEE 802 wirelesscommunication protocols, e.g., 802.11a/b/g/i, 802.15, 802.16, 802.20,Wi-Fi Protected Access (WPA), or WPA2. In terms of long range wirelessnetworks, the communication network 125 can include a mobile, cellular,and or satellite-based wireless network and support voice, video, text,and/or any combination thereof. Examples of long range wireless networkscan include GSM, TDMA, CDMA, WCDMA networks or the like. Thecommunication network 125 can include wired communication links and/orwireless communication links. The communication network 125 can includeany combination of the above networks and/or other types of networks.The communication network 125 can include one or more routers, switches,access points, wireless access points, and/or the like.

The one or more servers 105 can be implemented as a version controlserver or other communication hub or server capable of storing and/orprocessing documents within or as part of the communication network 125.The server 105 can include suitable operational software for performingthe various functions described herein.

The client(s) 110 can be implemented as any of a variety ofcommunication devices capable of transmitting and receivingcommunication signals and/or executing suitable communication software.For example, each client 110 can be implemented as a computer system orother information processing system. One or more of the clients 110 maybe a desktop computer. One or more of the clients 110 may also beimplemented as a portable or mobile computing device, e.g., a mobiletelephone, a smart phone, a wireless-enabled personal digital assistant,a portable computer, e.g., laptop, tablet or the like. Each of theclients 110 can include and/or execute suitable communication software(e.g., a version control client) which enables the client 110 tocommunicate with the server 105, other clients 110, the documentrepository 115 and/or the version control module 120 through thecommunication network 125 and perform the functions disclosed herein.

Again, the system 100 can include a document repository 115. Thedocument repository 115 can be any medium for storing one or moredocuments for accessing, check-out and/or check-in by one or more users.The term “document” means any electronic document, file, computerprogram code (e.g. computer program source code), collection of relateddata records (as for a computer), or set of instructions for use with acomputing device. The term “document” can also include a partial orcomplete collection of data (as text or a program) treated by a computeras a unit especially for purposes of input and output. It should beappreciated that while a single document repository 115 is illustratedin FIG. 1, a plurality of document repositories, each storing one ormore documents can be included.

The version control system 100 can include a version control module 120.In one embodiment, the version control module 120 can be stored on,accessed by and/or executed on the one or more clients 110.Alternatively or in addition, the version control module 120 can bestored on, accessed by and/or executed on the server 105.

The version control module 120 can be implemented as computer readableprogram code that, when executed by a processor, implement the variousprocesses described herein. The version control module 120 can processdocuments within the version control system 100, e.g., documents,whether within a single document repository or located across aplurality of different document repositories.

The version control module 120 can be configured to allow a user toapply one or more designations to at least a portion of a document. A“user” can be a person or other entity. The version control module 120can be configured to process the one or more user-applied designationsto at least a portion of a document.

The document repository 115 can include one or more master documents140. One or more users can check-out a master document 140 from thedocument repository 115. That is, one or more users can access, copy,create or download a local copy 145 of the master document 140 on or toa respective client 110. A plurality of users may check-out a respectivelocal copy 145 of the same master document 140 from the documentrepository 115.

A user can make revisions 150 to the local copy 145 of the masterdocument 140. The user can check-in the local copy 145 of the masterdocument 140 and request that the revisions 150 made thereto beincorporated into the master document 140. For instance, the user can doso by sending a commit request 155. A “commit request” or “request tocommit” is the sending, submitting, delivering, or transferring ofrevisions to a master document with a request that the revisions beincorporated into a master document.

The version control module 120 can receive the commit request 155. Theversion control module 120 can process the commit request 155. If thecommit request 155 with revisions 150 is accepted, the revisions 150 canbe incorporated into the respective master document 140 so that a newversion of the master document 140 is created and stored in the documentrepository 115. In some instances, the system 100 can be configured sothat only authorized users are permitted to check-in and/or check-outdocuments from the document repository 115.

If revisions are made to the master document 140, the version controlmodule 120 can be configured to send such revisions 157 to all localcopies 145 of the master document 140. The changes 150 can be pushed tothe local copies 145, that is, the revisions 157 are automaticallyincorporated into the local copies 145. Alternatively or in addition, auser having a local copy 145 can be prompted to accept the revisions157. In this way, the user can selectively incorporate the revisions 157to the user's local copy 145 of the master document 140. The sending ofthe revisions 157 to the master document 140 to local copies 145 of themaster document 140 can occur at any suitable time. For instance, thesending can occur at a predetermined point in time, after a certainquantity or percentage of changes are incorporated in the masterdocument 140, after any revision is made to the master document 140,upon the request of a user and/or combinations thereof, just to name afew possibilities.

The system 100 can be configured to allow a user to selectively assignone or more designations 160 to at least a portion of a document (e.g.local copy 145). A “designation” is any instruction that can beprocessed by a version control system so that the version control systemtreats the revisions made to a local copy of a master document in aspecified manner. The designation 160 can be preconfigured by theversion control system or by a system default. Alternatively or inaddition, the designation 160 can be configured by a user or some otherentity. “Assign to at least a portion of a document” means that adesignation may be selectively assigned to the document (e.g. a localcopy 145) as a whole, or the designation may be selectively assigned toone or more portions of a document (e.g. a local copy 145).

The designation 160 can be assigned to the local copy 145 of the masterdocument 140 in any suitable manner. For instance, the system 100 canreceive designations 160 by inputs received from a user. Accordingly,the system 100 can present an input system for receiving user inputs.Any suitable input system can be used, including, for example, akeyboard, keypad, display, touch screen, button, joystick, mouse,trackball, microphone or combinations thereof. In one implementation, auser interface can be provided to allow a user to selectively assign adesignation 160 to at least a portion of a document. A “user interface”is defined as a component, system or arrangement or groups thereof thatenable a user to enter information/data into a machine.

The user interface can include one or more user interface elements,which can include one or more graphical user interface elements. A “userinterface element” is defined as a component or a group of componentsthat enables a user to interact with a machine. The term “graphical userinterface element” is defined as an image or a portion of an image thatpresents information to a user or allows the user to interact with adevice through a display. As an example, one or more graphical userinterface elements (e.g. buttons, checkboxes, drop down menus, etc.) canbe presented to facilitate a user's input of a desired designation. Whenreceived from a user, an input designation can be assigned to at least aportion of the document as indicated by the user. In someimplementations, the designation may be applied to the document as awhole. Alternatively or in addition, the designation may be applied toone or more portions of a document. The user may be presented with oneor more predetermined designations from which to select.

It should be noted that a user may selectively remove or change adesignation 160 assigned to at least a portion of a document (e.g. thelocal copy 145 of the master document 140). To that end, the user mayenter an input to remove or change a designation 160. Such input can bereceived in any of the manners described above, such as by selecting auser interface element presented to the user.

Further, the version control module 120 can be configured to determinewhether a designation 160 is assigned to a commit request 155 and/or alocal copy 145 of a master document 140 associated with a commit request155. If it is determined that a designation 160 is assigned, then thedesignation 160 can be analyzed and/or processed by the version controlmodule 120. The version control module 120 can process the commitrequest 155 and/or a local copy 145 of a master document 140 associatedwith a commit request 155 in accordance with the designation 160.

Arrangements herein can include an “accept only” designation 165. Whenan accept only designation 165 is assigned to at least a portion of adocument, the user's revisions 150 to the at least the portion of thedocument are disallowed from being incorporated into the master document140 in the document repository 115 and are not included in any outgoingrevisions 157 sent by or caused to be sent by the version control module120. However, outgoing revisions 157 are still sent by or caused to besent by the version control module 120 to the users of local copies 145of a master document 140, including those users who have designated atleast a portion of their local copy 145 of the master document 140 asaccept only. Such outgoing revisions 157 can be selectively orautomatically incorporated into each local copy 145 of the masterdocument 140.

As an example, a first user and a second user can each check-out a localcopy 145 of a document 140 from the document repository 115. Forpurposes of this example, the first user designates the local copy 145of the master document 140 as accept only, and the second user does notassign a designation 160 to the local copy 145 of the master document140.

The first user can make revisions 150 to its local copy 145 of themaster document 140. The first user may request that the revisions 150be committed to the master document 140 in the document repository 115.The version control module 120 can determine whether an accept onlydesignation is assigned to the local copy 145. In this example, becausethe accept only designation is assigned to the first user's local copy145 as a whole, the version control module 120 will disallow allrevisions 150 from being incorporated into the master document 140.Further, the disallowed revisions will not be included in any revisions157 may be sent by or caused to be sent by the version control module120 to any users who have checked-out a local copy 145 of the masterdocument 140 (e.g. the first and second users).

The second user can make revisions 150 to its local copy 145 of themaster document 140. If the second user submits a commit request withthose revisions 150, the revisions 150 will be committed to the masterdocument 140 because the second user has not designated its local copy145 as accept only, nor has the second user assigned another designationto the local copy 145 that would cause the version control module 120 todisallow the revisions 150. The master document 140 can be revised, andthe revisions can be included in any outgoing revisions 157 sent by orcaused to be sent by the version control module 120 to any users whohave checked-out a local copy 145 of the master document 140. Thus, thefirst and second users will receive the revisions 157. Since the firstuser has assigned an accept only designation to its local copy 145 ofthe master document 140, the first user will continue to receiverevisions made to the master document 140 from other users (e.g. thesecond user).

The revisions 157 can be sent to the first user in any suitable manner.For instance, the first user may decide to update its local copy 145 ofthe master document 140. In such case, the first user can request anupdate from the version control module 120. The version control module120 can sent the revisions 157 to the first user. In someimplementations, the first user can selectively accept one or more ofthe revisions 157 for incorporation into its local copy 145 of themaster document 140. If accepted, the revisions 140 are made to thefirst user's local copy 145 of the master document 140. In someinstances, the revisions 157 can be automatically incorporated into tothe first user's local copy 145 of the master document 140 withoutallowing the user to decide whether to accept the revisions 157.

The first user may later decide that it wishes to submit a request tocommit its revisions to the local copy 145 of the master document 140.The first user may selectively remove the accept only designation fromat least a portion of the local copy 145 of the master document 140. Theremoval of the accept only designation can occur at any time, such asbefore and/or after revisions 150 are made to the local copy 145 of themaster document 140. The first user can submit its revisions 150 to thelocal copy 145 of the master document 140 to the version control module120. Since the accept only designation is removed, the version controlmodule 120 will allow the revisions 150 to be incorporated into themaster document 140 in the document repository 115.

In some instances, the version control module 120 can be configured tosend or have sent a notification to a user regarding the status of itscommit request. For instance, the version control module 120 can beconfigured to send or have sent a notification that one or more of therevisions 150 associated with the commit request 155 was disallowed dueto an accept only designation being assigned to at least a portion ofthe local copy 145 of the master document 150. The notification can beprovided in any suitable form, such as, for example, an electronic mailmessage, an instant message (IM), a Short Messaging System (SMS), orother message. The notification can be created within one of the servers105, clients 110, version control module 120 or other system.

Further, the version control module 120 can be configured to monitor thedesignations 160 assigned to local copies 145 of a master document 140.Such monitoring can be performed on any suitable basis, such ascontinuous, periodic, irregular or even randomly. In some instances, theversion control module 120 can be configured to prevent a user fromsending a commit request if at least a portion of the associated localcopy 145 of the master document 140 is designated as accept only.

It should be appreciated that the processing of designations 160 asdescribed herein can be performed by the server 105, the client 110, orany combination thereof depending upon the particular implementation. Inanother implementation, the version control module 115 can perform theprocessing of designations and may be invoked by either the clients 110and/or the server 105.

FIG. 2 is a flow chart illustrating a method 200 of providing versioncontrol for a document in accordance with one embodiment disclosedwithin this specification. At step 205, a request to commit one or morerevisions to a master document in a document repository can be receivedfrom a user. The one or more revisions can be included in a local copyof the master document. At step 210, it can be determined, via aprocessor, whether an accept only designation is assigned to at least aportion of the local copy of the master document.

At step 215, responsive to determining that an accept only designationis assigned to at least a portion of the local copy of the masterdocument, the respective revisions included in the at least a portion ofthe local copy of the master document assigned an accept onlydesignation can be disallowed from being incorporated into the masterdocument. At step 220, revisions made to the master document can be sentto the user for incorporation into the user's local copy of the masterdocument. The sending revisions is not prohibited by the user'sassignment of an accept only designation to at least a portion of thelocal copy of the master document. The sent revisions do not includerevisions disallowed in response to determining that an accept onlydesignation is assigned to at least a portion of the local copy of themaster document.

FIG. 3 is a flow chart illustrating a method 200 of providing versioncontrol for a document in accordance with one embodiment disclosedwithin this specification. At step 305, a user interface can bepresented on a client to allow a user to selectively assign an acceptonly designation to at least a portion of the local copy of the masterdocument. At step 310, an input can be received from a user assigning anaccept only designation to at least a portion of the local copy of themaster document. At step 315, an input can be received from the usermaking one or more revisions to the local copy of the master document.

At step 320, responsive to an input from the user, a request to committhe one or more revisions to the master document can be sent to aversion control module. Any of the one or more revisions included in theat least a portion of the local copy of the master document assigned anaccept only designation can be disallowed from being incorporated intothe master document. At step 325, revisions made to the master documentcan be received for inclusion in the local copy of the master document.The receiving revisions is not prohibited if the user has assigned anaccept only designation to at least a portion of the local copy of themaster document.

FIG. 4 is a block diagram illustrating an example of a data processingsystem 400. System 400 can include at least one processor (e.g., acentral processing unit) 405 coupled to memory elements 410 through asystem bus 415 or other suitable circuitry. As such, system 400 canstore program code within memory elements 410. Processor 405 executesthe program code accessed from memory elements 410 via system bus 415 orthe other suitable circuitry.

In one aspect, system 400 is implemented as a computer or otherprogrammable data processing apparatus that is suitable for storingand/or executing program code. It should be appreciated, however, thatsystem 400 can be implemented in the form of any system including aprocessor and memory that is capable of performing and/or initiating thefunctions and/or operations described within this specification.Further, system 400 can be implemented in any of a variety of differentform factors including, but not limited to, a portable device such as amobile communication device, a tablet computing and/or communicationdevice, a laptop computing device, a desktop computing device, a server,or the like.

Memory elements 410 include one or more physical memory devices such as,for example, local memory 420 and one or more bulk storage devices 425.Local memory 420 refers to RAM or other non-persistent memory device(s)generally used during actual execution of the program code. Bulk storagedevice(s) 425 can be implemented as a hard disk drive (HDD), solid statedrive (SSD), or other persistent data storage device. System 400 alsocan include one or more cache memories (not shown) that providetemporary storage of at least some program code in order to reduce thenumber of times program code must be retrieved from bulk storage device425 during execution.

Input/output (I/O) devices such as a keyboard 430, a display 435, and apointing device 440 optionally can be coupled to system 400. The I/Odevices can be coupled to system 400 either directly or throughintervening I/O controllers. One or more network adapters 445 also canbe coupled to system 400 to enable system 400 to become coupled to othersystems, computer systems, remote printers, and/or remote storagedevices through intervening private or public networks. Modems, cablemodems, wireless transceivers, and Ethernet cards are examples ofdifferent types of network adapters 445 that can be used with system400.

As pictured in FIG. 4, memory elements 410 can store a version controlmodule 120. Version control module 120, being implemented in the form ofexecutable program code, is executed by system 400 and, as such, isconsidered an integrated part of system 400. Version control module 120can determine whether an accept only designation is assigned to at leasta portion of the local copy of the master document. Moreover, theversion control module 120, including any parameters and/or attributesutilized by module 120, are functional data structures that impartfunctionality when employed as part of system 400.

Allowed revisions to the master document can be output to, and storedwithin, memory elements 410. As used herein, “outputting” and/or“output” can mean storing in memory elements 410, for example, writingto a file stored in memory elements 410, writing to display 435 or otherperipheral output device, playing audible notifications, sending ortransmitting to another system, exporting, or the like.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms “a,” “an,” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “includes,”“including,” “comprises,” and/or “comprising,” when used in thisspecification, specify the presence of stated features, integers, steps,operations, elements, and/or components, but do not preclude thepresence or addition of one or more other features, integers, steps,operations, elements, components, and/or groups thereof.

Reference throughout this specification to “one embodiment,” “anembodiment,” or similar language means that a particular feature,structure, or characteristic described in connection with the embodimentis included in at least one embodiment disclosed within thisspecification. Thus, appearances of the phrases “in one embodiment,” “inan embodiment,” and similar language throughout this specification may,but do not necessarily, all refer to the same embodiment.

The term “plurality,” as used herein, is defined as two or more thantwo. The term “another,” as used herein, is defined as at least a secondor more. The term “coupled,” as used herein, is defined as connected,whether directly without any intervening elements or indirectly with oneor more intervening elements, unless otherwise indicated. Two elementsalso can be coupled mechanically, electrically, or communicativelylinked through a communication channel, pathway, network, or system. Theterm “and/or” as used herein refers to and encompasses any and allpossible combinations of one or more of the associated listed items. Itwill also be understood that, although the terms first, second, etc. maybe used herein to describe various elements, these elements should notbe limited by these terms, as these terms are only used to distinguishone element from another unless stated otherwise or the contextindicates otherwise.

The term “if” may be construed to mean “when” or “upon” or “in responseto determining” or “in response to detecting,” depending on the context.Similarly, the phrase “if it is determined” or “if [a stated conditionor event] is detected” may be construed to mean “upon determining” or“in response to determining” or “upon detecting [the stated condition orevent]” or “in response to detecting [the stated condition or event],”depending on the context.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the embodiments disclosed within this specification havebeen presented for purposes of illustration and description, but are notintended to be exhaustive or limited to the form disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of theembodiments of the invention. The embodiments were chosen and describedin order to best explain the principles of the invention and thepractical application, and to enable others of ordinary skill in the artto understand the inventive arrangements for various embodiments withvarious modifications as are suited to the particular use contemplated.

What is claimed is:
 1. A method of providing version control for adocument comprising: receiving from a user a request to commit one ormore revisions to a master document in a document repository, the one ormore revisions being included in a local copy of the master document;determining, via a processor, whether an accept only designation isassigned to at least a portion of the local copy of the master documentby the user; responsive to determining that an accept only designationis assigned to at least a portion of the local copy of the masterdocument, disallowing the respective revisions included in the at leasta portion of the local copy of the master document assigned an acceptonly designation from being incorporated into the master document; andsending revisions made to the master document to the user forincorporation into the user's local copy of the master document, whereinthe sending revisions is not prohibited by the user's assignment of anaccept only designation to at least a portion of the local copy of themaster document, whereby the sent revisions do not include revisionsdisallowed in response to determining that an accept only designation isassigned to at least a portion of the local copy of the master document.2. The method of claim 1, further including automatically revising theuser's local copy of the master document with the sent revisions.
 3. Themethod of claim 1, further including prompting the user as toselectively accept the sent revisions for incorporation into the user'slocal copy of the master document.
 4. The method of claim 1, whereinsending revisions made to the master document to the user forincorporation into the user's local copy of the master document occursin response to a user request to update the local copy of the masterdocument.
 5. The method of claim 1, further including: responsive todetermining that no designation is assigned to at least a portion of thelocal copy of the master document or to determining that a designationis assigned to at least a portion of the local copy of the masterdocument that does not prohibit incorporation of the one or morerevisions to the master document, allowing the respective revisions tobe incorporated into the master document.
 6. The method of claim 1,further including: receiving from the user a request to commit one ormore revisions to a master document in a document repository, whereinthe user previously assigned an accept only designation to at least aportion of the local copy of the master document but has subsequentlyremoved the accept only designation; and responsive to determining thatno designation is assigned to at least a portion of the local copy ofthe master document or to determining that any designation assigned toat least a portion of the local copy of the master document does notprohibit incorporation of the one or more revisions to the masterdocument, allowing the respective revisions to be incorporated into themaster document.
 7. The method of claim 1, wherein sending revisionsmade to the master document to the user for incorporation into theuser's local copy of the master document includes sending revisions madeto the master document by one or more other users.
 8. A version controlmethod comprising: presenting a user interface element on a client toallow a user to selectively assign an accept only designation to atleast a portion of a local copy of a master document; receiving, from auser, an assigning input to assign an accept only designation to atleast a portion of the local copy of the master document; receiving,from the user, a version input to make one or more revisions to thelocal copy of the master document; sending, responsive to a requestinput from the user, sending a request to commit the one or morerevisions to the master document to a version control module, wherebyany of the one or more revisions included in the at least a portion ofthe local copy of the master document assigned an accept onlydesignation are disallowed from being incorporated into the masterdocument; and receiving revisions made to the master document forinclusion in the local copy of the master document, wherein thereceiving revisions is not prohibited if the user has assigned an acceptonly designation to at least a portion of the local copy of the masterdocument.
 9. The method of claim 8, further including automaticallyrevising the local copy of the master document with the receivedrevisions.
 10. The method of claim 8, further including prompting theuser for an indicating input to indicate whether the received revisionsare to be incorporated into the local copy of the master document. 11.The method of claim 8, wherein receiving revisions made to the masterdocument for inclusion in the local copy of the master document occursin response to request from the user to update the local copy of themaster document.
 12. The method of claim 8, further including receivinga removal input from a user to remove one or more previously assignedaccept only designations to the local copy of the master document. 13.The method of claim 8, wherein the master document and the local copy ofa master document are computer files including a computer program code.14. A version control system comprising: a hardware processor programmedto initiate the following executable operations: receiving from a user arequest to commit one or more revisions to a master document in adocument repository, the one or more revisions being included in a localcopy of the master document; determining whether an accept onlydesignation is assigned to at least a portion of the local copy of themaster document by the user; responsive to determining that an acceptonly designation is assigned to at least a portion of the local copy ofthe master document, disallowing the respective revisions included inthe at least a portion of the local copy of the master document assignedan accept only designation from being incorporated into the masterdocument; and sending revisions made to the master document to the userfor incorporation into the user's local copy of the master document,wherein the sending revisions is not prohibited if the user has assignedan accept only designation to at least a portion of the local copy ofthe master document, whereby the sent revisions do not include anyrevisions disallowed in response to determining that an accept onlydesignation is assigned to at least a portion of the local copy of themaster document.
 15. The system of claim 14, further includingautomatically revising the user's local copy of the master document withthe sent revisions.
 16. The system of claim 14, further includingprompting the user as to selectively accept the sent revisions forincorporation into the user's local copy of the master document.
 17. Themethod of claim 14, wherein sending revisions made to the masterdocument to the user for incorporation into the user's local copy of themaster document occurs in response to a user request to update the localcopy of the master document.
 18. The method of claim 14, furtherincluding: responsive to determining that no designation is assigned toat least a portion of the local copy of the master document or todetermining that a designation is assigned to at least a portion of thelocal copy of the master document that does not prohibit incorporationof the one or more revisions to the master document, allowing therespective revisions to be incorporated into the master document. 19.The method of claim 14, further including: receiving from the user arequest to commit one or more revisions to a master document in adocument repository, wherein the user previously assigned an accept onlydesignation to at least a portion of the local copy of the masterdocument but has subsequently removed the accept only designation; andresponsive to determining that no designation is assigned to at least aportion of the local copy of the master document or to determining thatany designation assigned to at least a portion of the local copy of themaster document does not prohibit incorporation of the one or morerevisions to the master document, allowing the respective revisions tobe incorporated into the master document.
 20. The method of claim 14,wherein the master document and the local copy of a master document arecomputer files including a computer program code.